リターンによる絞り込み(長期で見て右肩下がりなものを外す) ↓ 日足がついた日数・取引量で絞り込み ↓ 分散が7%以下のものをフィルタ ↓ 相関が低い組み合わせの抽出 #計算時間が長いのでカット中
# ticker1 <- c(kaigai, kokunai)
# length(ticker1)
# rtnt=data.frame(ticker=ticker1)
kaigaiETF_daily0 <- fread('C:\\tmp\\data\\ETF\\kaigaiETF\\kaigaiETF_daily.csv')
kaigaiETF_daily0$date <- as.Date(kaigaiETF_daily0$date)
kokunaiETF_daily0 <- fread('c:\\tmp\\data\\ETF\\kokunaiETF\\kokunaiETF_daily.csv')
kokunaiETF_daily0$date <- as.Date(kokunaiETF_daily0$date)
#
# #daily計算
# b00 <- daily %>%
# group_by(ticker) %>%
# mutate(rtn=(close-lag(close))/lag(close))
# #異常値の除去
# b00$rtn[is.na(b00$rtn)] <- 0
# b00$rtn[b00$rtn > 0.5] <- 0
# b00$rtn[b00$rtn < -0.5] <- 0
# #group_by(ticker, month(b00$date))でエラーになるのでdata.frameにしておく
# b00 <- data.frame(b00)
# write.table(b00,"dailyrtn.txt",sep="\t",quote=T,row.names=F)
#
# #monthly計算
# b02 <- b00 %>%
# group_by(ticker, year(b00$date), month(b00$date)) %>%
# summarise( return_monthly = prod(rtn+1)-1 )
#
# #異常値の除去
# b02$return_monthly[is.na(b00$return_monthly)] <- 0
# b02$return_monthly[b00$return_monthly > 0.5] <- 0
# b02$return_monthly[b00$return_monthly < -0.5] <- 0
# #group_by(ticker, month(b00$date))でエラーになるのでdata.frameにしておく
# b02 <- data.frame(b02)
# write.table(b02,"monthlyrtn.txt",sep="\t",quote=T,row.names=F)
#
# #直近●●日リターン計算の関数
# myrtn <- function(x) {
# d01 <- b00 %>%
# dplyr::select(date,ticker) %>%
# group_by(ticker) %>%
# do(tail(.,n=x)) %>%
# do(head(.,n=1)) %>%
# mutate(rtn=0)
# d01
#
# d02 <- b00 %>%
# dplyr::select(date,ticker,rtn) %>%
# group_by(ticker) %>%
# do(tail(.,n=x-1))
# d02
#
# d03 <- rbind(d01,d02)
# d03 <- d03[order(d03$ticker,d03$date),,]
# d03
#
# d04 <- d03 %>%
# group_by(ticker) %>%
# mutate(rtn1=rtn+1) %>%
# summarise(rtn = prod(rtn1)-1 )
# d04 <- data.frame(d04)
# d04[ ,1] <- as.factor(d04[ ,1])
# colnames(d04) <- c("ticker",paste("return",x,"days_last",sep="_"))
# return(d04)
# }
#
# #直近●●日リターン計算
# for ( i in 1:length(period)){
# d05 <- myrtn(period[i])
# rtnt <- merge(rtnt,d05,by=c("ticker"))
# }
#
# # #return_month_last
# # b01 <- b00 %>%
# # group_by(ticker) %>%
# # do(tail(., n=20)) %>%
# # summarise( return_month_last = prod(rtn+1)-1 )
# # #return_quarter_last
# # b02 <- b00 %>%
# # group_by(ticker) %>%
# # do(tail(., n=60)) %>%
# # summarise( return_quarter_last = prod(rtn+1)-1 )
# # #return_year_last
# # b03 <- b00 %>%
# # group_by(ticker) %>%
# # do(tail(., n=240)) %>%
# # summarise( return_year_last = prod(rtn+1)-1 )
# # #return_3year_last
# # b04 <- b00 %>%
# # group_by(ticker) %>%
# # do(tail(., n=720)) %>%
# # summarise( return_3year_last = prod(rtn+1)-1 )
# # #return_1month_last
# # b05 <- b00 %>%
# # group_by(ticker) %>%
# # do(tail(., n=1020)) %>%
# # summarise( return_5year_last = prod(rtn+1)-1 )
# #return_monthly_mean
# b06 <- b00 %>%
# group_by(ticker, year(b00$date), month(b00$date)) %>%
# summarise( return_monthly = prod(rtn+1)-1 ) %>%
# ungroup() %>%
# group_by(ticker) %>%
# summarise( return_monthly_mean = mean(return_monthly))
# #return_yearly_mean
# b07 <- b00 %>%
# group_by(ticker, year=year(b00$date)) %>%
# summarise( return_yearly = prod(rtn+1)-1 ) %>%
# summarise( return_yearly_mean = mean(return_yearly))
#
# #歪度・尖度計算
# #skewness_month_last
# a05 <- b00 %>%
# group_by(ticker) %>%
# do(tail(., n=20)) %>%
# summarise( skewness_month_last = round(skewness(rtn), digits=2) )
#
# #skewness_quarter_last
# a06 <- b00 %>%
# group_by(ticker) %>%
# do(tail(., n=60)) %>%
# summarise( skewness_quarter_last = round(skewness(rtn), digits=2) )
#
# #skewness_year_last
# a07 <- b00 %>%
# group_by(ticker) %>%
# do(tail(., n=200)) %>%
# summarise( skewness_year_last = round(skewness(rtn), digits=2) )
#
# #skewness_3year_last
# a08 <- b00 %>%
# group_by(ticker) %>%
# do(tail(., n=600)) %>%
# summarise( skewness_3year_last = round(skewness(rtn), digits=2) )
#
# #skewness_5year_last
# a09 <- b00 %>%
# group_by(ticker) %>%
# do(tail(., n=1000)) %>%
# summarise( skewness_5year_last = round(skewness(rtn), digits=2) )
#
# #skewness_monthly_mean
# a10 <- b00 %>%
# group_by(ticker, year=year(b00$date), month=month(b00$date)) %>%
# summarise( skewness_monthly = round(skewness(rtn), digits=2) ) %>%
# ungroup() %>%
# group_by(ticker) %>%
# summarise( skewness_monthly_mean = mean(skewness_monthly))
#
# #skewness_yearly_mean
# a11 <- b00 %>%
# group_by(ticker, year=year(b00$date)) %>%
# summarise( skewness_yearly = round(skewness(rtn), digits=2) ) %>%
# summarise( skewness_yearly_mean = mean(skewness_yearly))
#
# #kurtosis_month_last
# a12 <- b00 %>%
# group_by(ticker) %>%
# do(tail(., n=20)) %>%
# summarise( kurtosis_month_last = round(kurtosis(rtn), digits=2) )
#
# #kurtosis_quarter_last
# a13 <- b00 %>%
# group_by(ticker) %>%
# do(tail(., n=60)) %>%
# summarise( kurtosis_quarter_last = round(kurtosis(rtn), digits=2) )
#
# #kurtosis_year_last
# a14 <- b00 %>%
# group_by(ticker) %>%
# do(tail(., n=200)) %>%
# summarise( kurtosis_year_last = round(kurtosis(rtn), digits=2) )
#
# #kurtosis_3year_last
# a15 <- b00 %>%
# group_by(ticker) %>%
# do(tail(., n=600)) %>%
# summarise( kurtosis_3year_last = round(kurtosis(rtn), digits=2) )
#
# #kurtosis_5year_last
# a16 <- b00 %>%
# group_by(ticker) %>%
# do(tail(., n=1000)) %>%
# summarise( kurtosis_5year_last = round(kurtosis(rtn), digits=2) )
#
# #kurtosis_monthly_mean
# a17 <- b00 %>%
# group_by(ticker, year=year(b00$date), month=month(b00$date)) %>%
# summarise( kurtosis_monthly = round(kurtosis(rtn), digits=2) ) %>%
# ungroup() %>%
# group_by(ticker) %>%
# summarise( kurtosis_monthly_mean = mean(kurtosis_monthly))
#
# #kurtosis_yearly_mean
# a18 <- b00 %>%
# group_by(ticker, year=year(b00$date)) %>%
# summarise( kurtosis_yearly = round(kurtosis(rtn), digits=2) ) %>%
# summarise( kurtosis_yearly_mean = mean(kurtosis_yearly))
#
# #merge
# rtnt <- merge(rtnt, b06, all=T)
# rtnt <- merge(rtnt, b07, all=T)
# rtnt <- merge(rtnt, a05, all=T)
# rtnt <- merge(rtnt, a06, all=T)
# rtnt <- merge(rtnt, a07, all=T)
# rtnt <- merge(rtnt, a08, all=T)
# rtnt <- merge(rtnt, a09, all=T)
# rtnt <- merge(rtnt, a10, all=T)
# rtnt <- merge(rtnt, a11, all=T)
# rtnt <- merge(rtnt, a12, all=T)
# rtnt <- merge(rtnt, a13, all=T)
# rtnt <- merge(rtnt, a14, all=T)
# rtnt <- merge(rtnt, a15, all=T)
# rtnt <- merge(rtnt, a16, all=T)
# rtnt <- merge(rtnt, a17, all=T)
# rtnt <- merge(rtnt, a18, all=T)
# rtnt[,2:ncol(rtnt)] <- round(rtnt[,2:ncol(rtnt)],digits=3)
# write.table(rtnt,"rtnt.txt",sep="\t",quote=T,row.names = F)
# rtnt1 <- rtnt %>%
# dplyr::filter(return_240_days_last > 0 &
# return_720_days_last > 0 &
# return_1020_days_last > 0 &
# return_yearly_mean > 0 )
# ticker1 <- as.character(rtnt1$ticker)
# length(ticker1)
# ticker1
a01 <- kokunaiETF_daily0 %>%
dplyr::filter(year(date) >= "2013", year(date) <= "2019",
ticker %in% kokunaiETF) %>%
dplyr::group_by(year(date),month(date),ticker) %>%
summarise(days=n(),volume=mean(volume,na.rm=T)) %>%
ungroup() %>%
dplyr::group_by(ticker) %>%
summarise(days=mean(days,na.rm=T),volume=mean(volume,na.rm=T))
#日足がついた日数の分布を見てみる
summary(a01[,2])
days
Min. :13.00
1st Qu.:20.46
Median :20.81
Mean :21.30
3rd Qu.:22.96
Max. :23.44
hist(a01[,2])
#ばらけてなければフィルタ不要
#20日以下はフィルタしてみる
a01 <- a01 %>%
filter(days >= 20)
#取引量の分布を見てみる
summary(a01[,3])
volume
Min. : 7
1st Qu.: 746
Median : 2580
Mean : 142710
3rd Qu.: 8466
Max. :12575989
hist(a01[,3])
#何の根拠も無いが中央値以下はフィルタする
a01 <- a01 %>%
# dplyr::filter(volume > median(volume))
dplyr::filter(volume > quantile(volume, c(0.02275)))
datatable(a01,
filter = 'top',
style = 'bootstrap', class = 'table-bordered table-condensed',
extensions = 'ColReorder',
options = list(dom = 'Rlfrtip')
)
#tickerの抽出
ticker_filtered_kokunai <- as.character(c(t(a01[,1])))
length(ticker_filtered_kokunai)
[1] 250
ticker_filtered_kokunai
[1] "1305" "1306" "1308" "1309" "1311" "1312" "1313" "1319" "1320" "1321"
[11] "1322" "1323" "1324" "1325" "1326" "1327" "1328" "1329" "1330" "1343"
[21] "1344" "1345" "1346" "1348" "1349" "1356" "1357" "1358" "1360" "1364"
[31] "1365" "1366" "1367" "1368" "1369" "1385" "1386" "1390" "1391" "1392"
[41] "1397" "1398" "1399" "1456" "1457" "1458" "1459" "1464" "1465" "1466"
[51] "1467" "1469" "1470" "1472" "1475" "1476" "1477" "1478" "1479" "1480"
[61] "1481" "1482" "1483" "1484" "1486" "1487" "1488" "1489" "1490" "1492"
[71] "1493" "1494" "1495" "1496" "1497" "1498" "1499" "1540" "1541" "1542"
[81] "1543" "1545" "1546" "1547" "1550" "1551" "1552" "1554" "1555" "1557"
[91] "1559" "1560" "1563" "1566" "1568" "1569" "1570" "1571" "1572" "1573"
[101] "1575" "1576" "1577" "1578" "1579" "1580" "1584" "1586" "1591" "1592"
[111] "1593" "1595" "1597" "1599" "1613" "1615" "1617" "1618" "1619" "1621"
[121] "1622" "1623" "1625" "1626" "1627" "1629" "1630" "1631" "1632" "1633"
[131] "1651" "1652" "1653" "1654" "1655" "1656" "1657" "1658" "1659" "1660"
[141] "1670" "1671" "1672" "1677" "1678" "1679" "1680" "1681" "1682" "1683"
[151] "1688" "1689" "1690" "1695" "1696" "1698" "1699" "2031" "2032" "2034"
[161] "2035" "2036" "2037" "2038" "2039" "2040" "2041" "2042" "2043" "2044"
[171] "2045" "2046" "2048" "2067" "2068" "2510" "2511" "2512" "2513" "2514"
[181] "2515" "2516" "2517" "2518" "2519" "2520" "2524" "2525" "2526" "2527"
[191] "3226" "3227" "3234" "3249" "3269" "3278" "3279" "3281" "3282" "3283"
[201] "3287" "3290" "3292" "3295" "3296" "3298" "3308" "3309" "3451" "3453"
[211] "3455" "3459" "3462" "3463" "3466" "3468" "3470" "3471" "3472" "3473"
[221] "3476" "3478" "3481" "3487" "3488" "3493" "8951" "8952" "8953" "8954"
[231] "8955" "8956" "8957" "8958" "8960" "8961" "8963" "8964" "8966" "8967"
[241] "8968" "8972" "8975" "8976" "8977" "8979" "8984" "8985" "8986" "8987"
買い増しが難しいため
kokunaiETF_list <- fread('C:\\tmp\\data\\ETF\\kokunaiETF\\etf_etn_REIT_all.csv')
kokunaiETF_list$ticker <- as.factor(kokunaiETF_list$ticker)
kokunaiETF_list$name <- as.character(kokunaiETF_list$name)
kokunaiETF_list$Trading_unit <- as.numeric(kokunaiETF_list$Trading_unit)
tmp <- daily1 %>%
filter(ticker %in% kokunaiETF_list$ticker) %>%
group_by(ticker) %>%
do(tail(.,1))
kokunaiETF_list <- merge(kokunaiETF_list, tmp, by='ticker')
rm(tmp)
kokunaiETF_list <- kokunaiETF_list %>%
mutate(unit_close = Trading_unit * close) %>%
filter(unit_close < 10000)
tmp <- as.character(kokunaiETF_list$ticker)
ticker_filtered_kokunai <- intersect(ticker_filtered_kokunai, tmp)
#日足がついた日数・取引量を集計
a01 <- kaigaiETF_daily0 %>%
dplyr::filter(year(date) >= "2013", year(date) < "2017",
ticker %in% kaigai) %>%
dplyr::group_by(year(date),month(date),ticker) %>%
summarise(days=n(),volume=mean(volume,na.rm=T)) %>%
ungroup() %>%
dplyr::group_by(ticker) %>%
summarise(days=mean(days,na.rm=T),volume=mean(volume,na.rm=T))
#日足がついた日数の分布を見てみる
summary(a01[,2])
days
Min. :18.50
1st Qu.:21.00
Median :21.00
Mean :20.84
3rd Qu.:21.00
Max. :21.44
#ばらけてなければフィルタ不要
#取引量の分布を見てみる
summary(a01[,3])
volume
Min. : 73
1st Qu.: 36121
Median : 184564
Mean : 3331874
3rd Qu.: 1142152
Max. :152074575
hist(a01[,3])
#何の根拠も無いが中央値以下はフィルタする
a01 <- a01 %>%
dplyr::filter(volume > median(volume))
datatable(a01)
#tickerの抽出
ticker_filtered_kaigai <- as.character(c(t(a01[,1])))
length(ticker_filtered_kaigai)
[1] 147
ticker_filtered_kaigai
[1] "2800.HK" "2801.HK" "2823.HK" "2827.HK" "2828.HK" "2836.HK" "3049.HK"
[8] "ACWI" "AGG" "BIV" "BLV" "BND" "BNDX" "BSV"
[15] "CHAU" "CIU" "CSJ" "CURE" "CWB" "DBA" "DBC"
[22] "DEM" "DFE" "DIA" "DRN" "DUST" "DVY" "DXJ"
[29] "EDC" "EDZ" "EEM" "EFA" "EIDO" "ELD" "EMB"
[36] "EMLC" "EPHE" "EPI" "EPOL" "EPP" "ERUS" "EWG"
[43] "EWJ" "EWM" "EWS" "EWT" "EWW" "EWY" "EWZ"
[50] "EZA" "FAS" "FAZ" "FM" "FXI" "GDX" "GDXJ"
[57] "GLD" "GSG" "HACK" "HDV" "HEDJ" "HEWG" "HEWJ"
[64] "HEZU" "HYG" "IAU" "IBB" "IEF" "IEMG" "IEV"
[71] "IFGL" "IJH" "IJR" "ILF" "IVV" "IWM" "IXC"
[78] "IYR" "JNK" "LABD" "LABU" "LQD" "MBB" "MOO"
[85] "NUGT" "OEF" "OIH" "PFF" "QQQ" "RSX" "RUSL"
[92] "RUSS" "RWR" "RWX" "SDY" "SHV" "SHY" "SLV"
[99] "SMH" "SPXL" "SPXS" "SPY" "THD" "TIP" "TLT"
[106] "TMF" "TMV" "TNA" "TUR" "TZA" "VB" "VBR"
[113] "VCIT" "VCSH" "VDE" "VEA" "VEU" "VFH" "VGK"
[120] "VGT" "VHT" "VIG" "VMBS" "VNM" "VO" "VOE"
[127] "VOO" "VPL" "VT" "VTI" "VTIP" "VTV" "VUG"
[134] "VV" "VWO" "VXF" "VXUS" "VYM" "XLB" "XLE"
[141] "XLF" "XLI" "XLK" "XLP" "XLU" "XLV" "XLY"
# 海外ETFはトレーリングストップができないので一旦外す
# ticker_filtered <- c(ticker_filtered_kokunai,ticker_filtered_kaigai)
ticker_filtered0 <- ticker_filtered_kokunai
ticker_filtered1 <- setdiff(ticker_filtered0,
c("1465","1468","1471","1466","1469","1472","1464","1467","1470","1474","1591","1592","1593","1593","1599","2526","1492","1492","1493","1346","1369","1397","1578","2525","1456","1571","1580","1459","2035","1458","1570","1579","1489"))
tmp <- daily1 %>%
filter(ticker %in% ticker_filtered1) %>%
group_by(ticker) %>%
do(tail(.,1)) %>%
filter(date > Sys.Date() - 30)
ticker_filtered2 <- as.character(t(tmp$ticker))
rm(tmp)
7%以上のリターンが見込めないものは外したい
# filter(ticker=='1305') %>%
tmp <- dailyrtn %>%
filter(ticker %in% ticker_filtered2) %>%
group_by(ticker, year(date)) %>%
summarise(sd = sd(rtn, na.rm=TRUE) * sqrt(250)) %>%
ungroup() %>%
group_by(ticker) %>%
summarise(sd_mean = mean(sd, na.rm=T)) %>%
filter(sd_mean >= 0.07)
datatable(tmp,
filter = 'top',
style = 'bootstrap', class = 'table-bordered table-condensed',
extensions = 'ColReorder',
options = list(dom = 'Rlfrtip')
)
ticker_filtered3 <- as.character(tmp$ticker)
ticker_filtered3
[1] "1311" "1327" "1344" "1357" "1366" "1367" "1368" "1385" "1386" "1390"
[11] "1391" "1392" "1457" "1475" "1476" "1477" "1478" "1481" "1482" "1483"
[21] "1496" "1497" "1499" "1540" "1541" "1542" "1559" "1560" "1563" "1575"
[31] "1576" "1584" "1586" "1618" "1623" "1627" "1631" "1632" "1651" "1655"
[41] "1656" "1657" "1658" "1659" "1660" "1671" "1688" "1689" "1690" "1695"
[51] "1696" "1699" "2031" "2032" "2034" "2037" "2038" "2039" "2041" "2042"
[61] "2043" "2046" "2048" "2067" "2068" "2511" "2513" "2514" "2515" "2516"
[71] "2517" "2518" "2519" "2520" "2527"
{r} # ticker_filtered <- setdiff(ticker_filtered, c('1541','2034','2045','LABD','SPXS')) ##参考
rtnt[rtnt$ticker=='2049',14] #skewness
numeric(0)
rtnt[rtnt$ticker=='2049',21] #kurtosis
numeric(0)
tmp <- rtnt %>%
group_by(ticker) %>%
filter(ticker %in% ticker_filtered3,
skewness_monthlyreturn < -0.3,
kurtosis_monthlyreturn < 0.5)
#-0.3とか0.5はなんとなく。。。もう少し考えたいな(宿題)
ggplotly(
ggplot(subset(monthlyrtn, ticker %in% tmp$ticker),
aes(x = return_monthly, colour = ticker)
) + geom_density()
)
tmp <- as.character(t(tmp$ticker))
ticker_filtered <- union(ticker_filtered3, tmp)
# ticker_wanted <- setdiff(ticker_wanted, kounyu)
f02 <- daily1 %>%
filter(ticker %in% c(ticker_filtered),
date >= Sys.Date() - 365)
f02 <- dcast(f02, date ~ ticker, value.var='close')
f02 <- f02[,2:ncol(f02)]
#f02 <- f02[,order(factor(colnames(f02),levels=c(kounyu, ticker_wanted)))]
cor.plot(cor(f02, use='pairwise.complete.obs', method='p'),
numbers=T)
{r} # ticker_wanted <- c('1475','FM','IBB','LABU') # write.table(ticker_wanted,'ticker_wanted.txt') #write(ticker_filtered,'c:\\tmp\\data\\ETF\\ticker_filtered.txt')
# #データ
# d10 <- fread("dailyrtn.txt")
# d10 <- d10[!duplicated(paste(d10$date,d10$ticker,sep=",")),]
# d10 <- dcast(d10,date ~ ticker,value.var="rtn")
# d10 <- d10 %>%
# filter(date >= "2016-01-01" & date <= "2016-12-31")
#
# #output
# cort <- data.frame(matrix(rep(NA,3),nrow=1))[-1,]
# colnames(cort) <- c('COR','tickerA','tickerB')
#
# #tickerの組み合わせ
# #d00 <- expand.grid('1365',tickerall)
# d00 <- t(combn(ticker2,2))
#
# #組み合わせ毎(年毎)の相関の平均
# for (i in 1:nrow(d00)){
# d01 <- d10 %>%
# #dplyr::select(date, tickerA=starts_with(d00[i,1]), tickerB=starts_with(d00[i,2])) %>%
# dplyr::select(date,
# matches(paste("^",d00[i,1],"$",sep="")),
# matches(paste("^",d00[i,2],"$",sep=""))
# ) %>%
# group_by(yyyy=year(d10$date)) %>%
# do(cortmp=t(cor(.[,2], .[,3], use="pairwise.complete.obs",method="p"))) %>%
# ungroup() %>%
# summarise(COR=mean(as.numeric(cortmp),na.rm = T))
# names(d01)[1] <- c("COR")
# d01 <- transform(d01,a=d00[i,1])
# d01 <- transform(d01,b=d00[i,2])
# cort <- rbind(cort,d01)
# }
#
# cort1 <- cort[cort$COR < 0.5 & cort$COR > -0.5,]
# ticker1 <- unique(sort(c(as.character(cort1$a),as.character(cort1$b))))
#
# ab12 <- graph.data.frame(na.omit(cort1[,2:3]),directed=F)
# #ab13 <- clique_num(ab12)
# ab14 <- largest.cliques(ab12) #爆速 ab14 <- cliques(ab12,min=ab13) は遅い
# length(ab14)
#
# cliquet = data.frame(x1=names(ab14[[1]]))
# if (length(ab14) != 1){
# for ( i in 2:length(ab14)){
# cliquet <- transform(cliquet,tmp=names(ab14[[i]]))
# names(cliquet)[i] <- paste("x",i,sep="")
# }
# }
#
# write.table(cliquet,"cliquet.txt",sep="\t",quote=T,row.names = F)
# datatable(cliquet)
#
# d02 <- as.xts(read.zoo(d10))
# d02 <- d02[,sort(names(ab14[[1]]))]
# cor1 <- cor(d02,use="pairwise.complete.obs",method="p")
# #qgraph(cor1,edge.labels=T,label.cex=0.1)
# cor.plot(cor1,numbers=T)
#cliquet <- read.table("cliquet.txt",sep="\t",header=T)
# sa <- c()
# for (i in 1:ncol(cliquet)){
# tmp <- daily %>%
# dplyr::filter(ticker %in% as.character(cliquet[,i])) %>%
# group_by(ticker) %>%
# do(tail(.,n=1)) %>%
# mutate(sa = 50000 %% close) %>%
# ungroup() %>%
# summarise(sa = sum(sa))
# #sa[i,1] <- tmp
# sa <- c(sa,tmp)
# }
#国内ETF
# sa <- c()
# tmp <- daily %>%
# group_by(ticker) %>%
# do(tail(.,n=1))
#
# tmp1 <- read.table("kokunaiETFlist.txt",sep="\t",header=T)
# tmp1 <- tmp1[,c(1,4)]
# tmp1[,2] <- as.numeric(as.character(tmp1[,2]))
#
# tmp2 <- merge(tmp,tmp1,by="ticker")
#
# for (i in 1:ncol(cliquet)){
# tmp3 <- tmp2 %>%
# filter(ticker %in% as.character(cliquet[,i])) %>%
# mutate(sa = 50000 %% (close*unit)) %>%
# summarise(sa = sum(sa))
# sa <- c(sa,tmp3)
# }
# which.min(sa)
# sa[which.min(sa)]
# datatable(data.frame(sort(cliquet[,which.min(sa)])))
# ticker4 <- sort(as.character(cliquet[,which.min(sa)]))
#data
# data01 <- read.table("monthlyrtn.txt",sep="\t",header=T)
# data01$return_monthly[is.na(data01$return_monthly)] <- 0
# data01$return_monthly[data01$return_monthly > 0.5] <- 0
# data01$return_monthly[data01$return_monthly < -0.5] <- 0
# data02 <- data01 %>%
# dplyr::filter(ticker %in% ticker4)
# data02 %>%
# dplyr::group_by(year.b00.date.,month.b00.date.) %>%
# summarise(n())
# data02 <- transform(data02,
# yyyymm=paste(data02$year.b00.date,
# formatC(data02$month.b00.date,width=2,flag=0),
# sep="-"
# )
# )
# data <- data02[,c(5,4)]
# #data02[,1] <- as.Date(data02[,1])
# #data <- data02[order(data02[,1],data02[,2]),]
#
#
# # den <- tapply(data[,2],
# # data[,1],
# # hist,
# # breaks=seq( -1 * max(max(abs(data[ ,2])),min(abs(data[ ,2]))),
# # max(max(abs(data[ ,2])),min(abs(data[ ,2]))),
# # 0.2
# # )
# # )
# den <- tapply(data[,2],
# data[,1],
# hist,
# breaks=seq( -0.5,
# 0.5,
# 0.025
# )
# )
#
# t00 <- data.frame(yyyymm = den[[1]]$density)
# colnames(t00) <- names(den[1])
# for (i in 2:length(den)){
# t01 <- data.frame(yyyymm = den[[i]]$density)
# colnames(t01) <- names(den[i])
# t00 <- cbind(t00,t01)
# }
# row.names(t00) <- den[[1]]$mids
#
# t01 <- list(x = colnames(t00),
# y = row.names(t00),
# z = as.matrix(t00),
# type = "surface")
# plot_ly(x = t01$x , y = t01$y , z = t01$z , type = "surface" , showscale=FALSE)
#
# data01[ ,1] <- as.factor(data01[ ,1])
# g <- ggplot(subset(data01, ticker %in% ticker4), aes(x=return_monthly, colour=ticker))
# g <- g + geom_density()
# ggplotly(g)
#
# daily[,1] <- as.Date(daily[,1])
# e00 <- daily %>%
# filter(date > "2013-01-01", ticker %in% ticker4)
#
# e01 <- e00 %>%
# group_by(ticker) %>%
# select(close1=close) %>%
# do(head(.,n=1))
#
# e02 <- merge(e00,e01,by="ticker",all=T)
# e02 <- transform(e02, rtn = (e02$close - e02$close1) / e02$close1 + 1)
# e02 <- data.frame(e02)
# e02[ ,1] <- as.factor(e02[ ,1])
# e02[ ,2] <- as.Date(e02[ ,2])
# g <- ggplot(e02, aes(x = date, y = rtn, colour = ticker))
# g <- g + geom_line()
# ggplotly(g)
#
# datatable(subset(rtnt,ticker %in% ticker4))
$(function(){
$("img:not(.lb-image)").wrap(function() {
return "<a href='" + $(this).attr("src") + "' data-lightbox='" + $(this).attr("scr") + "'></a>";
});
});